

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

/**
 *
 * @author rooke
 */
public class Instrucao {

    private long instrucao;

    private String instrucaoBinaria;
    
    public String getInstrucaoBinaria() {
        return instrucaoBinaria;
    }
    
    public Instrucao(String instrucao) {
        this.instrucao = Long.parseLong(instrucao, 2);
        this.instrucaoBinaria=instrucao;
    }

    public String getEndereco() {
        return getInstrucaoBinaria().substring(16);
    }
    
    public int getEnderecoInt() {
        return Integer.parseInt(getEndereco(),2);
    }

    public String getFunct() {
        return getInstrucaoBinaria().substring(26);
    }
    public int getFunctInt() {
        return Integer.parseInt(getFunct(),2);
    }

    public String getOpcode() {
        return getInstrucaoBinaria().substring(0,6);
    }
    public int getOpcodeInt() {
        return Integer.parseInt(getOpcode(),2);
    }

    public String getRd() {
     
        return getInstrucaoBinaria().substring(16,21);
 
    }
    
    public int getRdInt() {
        return Integer.parseInt(getRd(),2);
    }

    public String getRs() {
        return getInstrucaoBinaria().substring(6, 11);
    }
    public int getRsInt() {
        return Integer.parseInt(getRs(),2);
    }

    public String getRt() {
        return getInstrucaoBinaria().substring(11, 16);
    }
    public int getRtInt() {
        return Integer.parseInt(getRt(),2);
    }

    public String getShamt() {
        return getInstrucaoBinaria().substring(21, 26);
    }
    public int getShamtInt() {
        return Integer.parseInt(getShamt(),2);
    }

    public long getInteiro() {
        return this.instrucao;
    }

}
